/**
 * 服务器入口文件
 */
const express = require('express')
const app = express()
const dbConfig = require('./dbConfig')

app.use(require('cors')())  //跨域中间件
//若没有引入第三方跨域组件, 可以自己配置允许跨域访问该服务 --express框架解决跨域问题的代码，注意该代码要放在 app.use(router); 之前
/*app.all('*', function (req, res, next) {
    // 开发环境设置，生产环境谨慎使用
    // res.header("Access-Control-Allow-Origin", "http://localhost:8080");
    res.header("Access-Control-Allow-Origin", "*");  //其中*表示允许所有域可跨
    res.header("Access-Control-Allow-Headers", "Origin,X-Requested-With,Content-Type,Accept");
    // res.header("Access-Control-Allow-Credentials", true);
    res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
    // res.header("X-Powered-By", '3.2.1');
    res.header("X-Powered-By", 'Express');
    //这段仅仅为了方便返回json而已
    res.header("Content-Type", "application/json;charset=utf-8");
    if (req.method === 'OPTIONS') {
        //让options请求快速返回
        res.sendStatus(200);
    } else {
        next();
    }
});*/


app.use(express.json())  //通过express.json()这个中间件，解析表单中的JSON格式的数据


app.get('/', async (req, res)=>{
    res.send('连接成功')
})


//录入学生
app.post('/api/addStudent', (req, res)=>{
    dbConfig.addStudent(req, res)
})

//删除学生
app.delete('/api/deleteStudent/:id', (req, res)=>{
    dbConfig.deleteStudent(req, res)
})

//获取某一个学生的信息
app.get('/api/getOneStudent/:id', (req, res)=>{
    dbConfig.getOneStudent(req, res)
})

//修改学生信息
app.put('/api/updateStudent/:id', (req, res)=>{
    dbConfig.updateStudent(req, res)
})

//根据学号进行精确查询
app.get('/api/findBySnumber/:snumber', (req, res)=>{
    dbConfig.findBySnumber(req, res)
})

//根据姓名进行模糊查询(分页查询)
app.get('/api/findByName', (req, res)=>{
    dbConfig.findByName(req, res)
})


//获取学生列表(分页查询)
app.all('/api/getStudentList', (req, res)=>{
    dbConfig.getStudentList(req, res)
})

app.get('/api/exportToExcel', (req, res)=>{
    dbConfig.exportStudentListToExcel(req, res)
})

app.listen(3001, function () {
    console.log('服务器开启', 'http://127.0.0.1:3001')
})
